了解Process之後,接著要解釋Thread這個非常容易與其混淆的名詞,他們非常相似,卻又有所不同,今天就讓我來好好的解釋Thread的概念、應用時機與優缺點。
Thread是真正使用CPU core的基本單位,基本上每一個CPU core在一個時間點上面能夠執行一個thread的上的instruction,所以多核心的電腦在效能上就快的多。並且在同一個Process底下的threads,會共用相同的code section和data section,意指它們的資料是共用的,雖然共用的data section,但其實每一個thread會有屬於自己的一個private memeory,使其可以做一些獨立的計算。
在多執行緒的使用上非常廣泛,依我個人依照我的經驗提出幾個比較常用的方向:
其實幾乎比較大的Process都會用到多個執行緒,這是我在mac活動監視器裡的數據,可以看到光是Chrome就起了30幾條執行緒。
會使用mult-thread的優點如下: